package com.sky.mapper;

import com.sky.entity.ShoppingCart;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface ShoppingCartMapper {

	/**
	 * 根据用户id、套餐id 或 菜品id加 口味动态获取购物车数据
	 * @param shoppingCart
	 */
	List<ShoppingCart> list(ShoppingCart shoppingCart);

	/**
	 * 根据主键id修改商品数量
	 * @param shoppingCart
	 */
	@Update("update shopping_cart set number=#{number} where id =#{id}")
	void updateNumberById(ShoppingCart shoppingCart);

	/**
	 * 添加购物车
	 * @param shoppingCart
	 */
	@Insert("insert into shopping_cart (name, image, user_id, dish_id, setmeal_id, dish_flavor, number, amount, create_time) " +
			"values (#{name},#{image},#{userId},#{dishId},#{setmealId},#{dishFlavor},#{number},#{amount},#{createTime})")
	void insert(ShoppingCart shoppingCart);

	/**
	 * 根据用户id删除购物车数据
	 * @param userId
	 */
	@Delete("delete from shopping_cart where user_id=#{userId}")
	void deleteByUserId(Long userId);

	/**
	 * 根据主键id删除购物车数据
	 * @param id
	 */
	@Delete("delete from shopping_cart where id=#{id}")
	void deleteById(Long id);

	/**
	 * 批量插入购物车数据
	 * @param shoppingCartList
	 */
	void insertBatch(List<ShoppingCart> shoppingCartList);
}
